home *** CD-ROM | disk | FTP | other *** search
/ Kompuutteri K-CD 2002 #1 / K-CD_2002-01.iso / Delphi / INSTALL / program files / Borland / Delphi6 / Source / Rtl / Win / CommDlg.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-05-22  |  35.7 KB  |  1,028 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Borland Delphi Run-time Library                 }
  5. {       Win32 Common Dialogs interface unit             }
  6. {                                                       }
  7. {       Copyright (c) 1985-1999, Microsoft Corporation  }
  8. {                                                       }
  9. {       Translator: Borland Software Corporation        }
  10. {                                                       }
  11. {*******************************************************}
  12.  
  13. unit CommDlg;
  14.  
  15. {$WEAKPACKAGEUNIT}
  16.  
  17. {$HPPEMIT '#include <commdlg.h>'}
  18.  
  19. interface
  20.  
  21. uses Windows, Messages, ShlObj;
  22.  
  23. type
  24.   POpenFilenameA = ^TOpenFilenameA;
  25.   POpenFilenameW = ^TOpenFilenameW;
  26.   POpenFilename = POpenFilenameA;
  27.   {$EXTERNALSYM tagOFNA}
  28.   tagOFNA = packed record
  29.     lStructSize: DWORD;
  30.     hWndOwner: HWND;
  31.     hInstance: HINST;
  32.     lpstrFilter: PAnsiChar;
  33.     lpstrCustomFilter: PAnsiChar;
  34.     nMaxCustFilter: DWORD;
  35.     nFilterIndex: DWORD;
  36.     lpstrFile: PAnsiChar;
  37.     nMaxFile: DWORD;
  38.     lpstrFileTitle: PAnsiChar;
  39.     nMaxFileTitle: DWORD;
  40.     lpstrInitialDir: PAnsiChar;
  41.     lpstrTitle: PAnsiChar;
  42.     Flags: DWORD;
  43.     nFileOffset: Word;
  44.     nFileExtension: Word;
  45.     lpstrDefExt: PAnsiChar;
  46.     lCustData: LPARAM;
  47.     lpfnHook: function(Wnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  48.     lpTemplateName: PAnsiChar;
  49.     pvReserved: Pointer;
  50.     dwReserved: DWORD;
  51.     FlagsEx: DWORD;
  52.   end;
  53.   {$EXTERNALSYM tagOFNW}
  54.   tagOFNW = packed record
  55.     lStructSize: DWORD;
  56.     hWndOwner: HWND;
  57.     hInstance: HINST;
  58.     lpstrFilter: PWideChar;
  59.     lpstrCustomFilter: PWideChar;
  60.     nMaxCustFilter: DWORD;
  61.     nFilterIndex: DWORD;
  62.     lpstrFile: PWideChar;
  63.     nMaxFile: DWORD;
  64.     lpstrFileTitle: PWideChar;
  65.     nMaxFileTitle: DWORD;
  66.     lpstrInitialDir: PWideChar;
  67.     lpstrTitle: PWideChar;
  68.     Flags: DWORD;
  69.     nFileOffset: Word;
  70.     nFileExtension: Word;
  71.     lpstrDefExt: PWideChar;
  72.     lCustData: LPARAM;
  73.     lpfnHook: function(Wnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  74.     lpTemplateName: PWideChar;
  75.     pvReserved: Pointer;
  76.     dwReserved: DWORD;
  77.     FlagsEx: DWORD;
  78.   end;
  79.   {$EXTERNALSYM tagOFN}
  80.   tagOFN = tagOFNA;
  81.   TOpenFilenameA = tagOFNA;
  82.   TOpenFilenameW = tagOFNW;
  83.   TOpenFilename = TOpenFilenameA;
  84.   {$EXTERNALSYM OPENFILENAMEA}
  85.   OPENFILENAMEA = tagOFNA;
  86.   {$EXTERNALSYM OPENFILENAMEW}
  87.   OPENFILENAMEW = tagOFNW;
  88.   {$EXTERNALSYM OPENFILENAME}
  89.   OPENFILENAME = OPENFILENAMEA;
  90.  
  91. {$EXTERNALSYM GetOpenFileName}
  92. function GetOpenFileName(var OpenFile: TOpenFilename): Bool; stdcall;
  93. {$EXTERNALSYM GetOpenFileNameA}
  94. function GetOpenFileNameA(var OpenFile: TOpenFilenameA): Bool; stdcall;
  95. {$EXTERNALSYM GetOpenFileNameW}
  96. function GetOpenFileNameW(var OpenFile: TOpenFilenameW): Bool; stdcall;
  97. {$EXTERNALSYM GetSaveFileName}
  98. function GetSaveFileName(var OpenFile: TOpenFilename): Bool; stdcall;
  99. {$EXTERNALSYM GetSaveFileNameA}
  100. function GetSaveFileNameA(var OpenFile: TOpenFilenameA): Bool; stdcall;
  101. {$EXTERNALSYM GetSaveFileNameW}
  102. function GetSaveFileNameW(var OpenFile: TOpenFilenameW): Bool; stdcall;
  103. {$EXTERNALSYM GetFileTitle}
  104. function GetFileTitle(FileName: PChar; Title: PChar; TitleSize: Word): Smallint; stdcall;
  105. {$EXTERNALSYM GetFileTitleA}
  106. function GetFileTitleA(FileName: PAnsiChar; Title: PAnsiChar; TitleSize: Word): Smallint; stdcall;
  107. {$EXTERNALSYM GetFileTitleW}
  108. function GetFileTitleW(FileName: PWideChar; Title: PWideChar; TitleSize: Word): Smallint; stdcall;
  109.  
  110. const
  111.   {$EXTERNALSYM OFN_READONLY}
  112.   OFN_READONLY = $00000001;
  113.   {$EXTERNALSYM OFN_OVERWRITEPROMPT}
  114.   OFN_OVERWRITEPROMPT = $00000002;
  115.   {$EXTERNALSYM OFN_HIDEREADONLY}
  116.   OFN_HIDEREADONLY = $00000004;
  117.   {$EXTERNALSYM OFN_NOCHANGEDIR}
  118.   OFN_NOCHANGEDIR = $00000008;
  119.   {$EXTERNALSYM OFN_SHOWHELP}
  120.   OFN_SHOWHELP = $00000010;
  121.   {$EXTERNALSYM OFN_ENABLEHOOK}
  122.   OFN_ENABLEHOOK = $00000020;
  123.   {$EXTERNALSYM OFN_ENABLETEMPLATE}
  124.   OFN_ENABLETEMPLATE = $00000040;
  125.   {$EXTERNALSYM OFN_ENABLETEMPLATEHANDLE}
  126.   OFN_ENABLETEMPLATEHANDLE = $00000080;
  127.   {$EXTERNALSYM OFN_NOVALIDATE}
  128.   OFN_NOVALIDATE = $00000100;
  129.   {$EXTERNALSYM OFN_ALLOWMULTISELECT}
  130.   OFN_ALLOWMULTISELECT = $00000200;
  131.   {$EXTERNALSYM OFN_EXTENSIONDIFFERENT}
  132.   OFN_EXTENSIONDIFFERENT = $00000400;
  133.   {$EXTERNALSYM OFN_PATHMUSTEXIST}
  134.   OFN_PATHMUSTEXIST = $00000800;
  135.   {$EXTERNALSYM OFN_FILEMUSTEXIST}
  136.   OFN_FILEMUSTEXIST = $00001000;
  137.   {$EXTERNALSYM OFN_CREATEPROMPT}
  138.   OFN_CREATEPROMPT = $00002000;
  139.   {$EXTERNALSYM OFN_SHAREAWARE}
  140.   OFN_SHAREAWARE = $00004000;
  141.   {$EXTERNALSYM OFN_NOREADONLYRETURN}
  142.   OFN_NOREADONLYRETURN = $00008000;
  143.   {$EXTERNALSYM OFN_NOTESTFILECREATE}
  144.   OFN_NOTESTFILECREATE = $00010000;
  145.   {$EXTERNALSYM OFN_NONETWORKBUTTON}
  146.   OFN_NONETWORKBUTTON = $00020000;
  147.   {$EXTERNALSYM OFN_NOLONGNAMES}
  148.   OFN_NOLONGNAMES = $00040000;
  149.   {$EXTERNALSYM OFN_EXPLORER}
  150.   OFN_EXPLORER = $00080000;
  151.   {$EXTERNALSYM OFN_NODEREFERENCELINKS}
  152.   OFN_NODEREFERENCELINKS = $00100000;
  153.   {$EXTERNALSYM OFN_LONGNAMES}
  154.   OFN_LONGNAMES = $00200000;
  155.   {$EXTERNALSYM OFN_ENABLEINCLUDENOTIFY}
  156.   OFN_ENABLEINCLUDENOTIFY = $00400000;
  157.   {$EXTERNALSYM OFN_ENABLESIZING}
  158.   OFN_ENABLESIZING = $00800000;
  159.   { #if (_WIN32_WINNT >= 0x0500) }
  160.   {$EXTERNALSYM OFN_DONTADDTORECENT}
  161.   OFN_DONTADDTORECENT = $02000000;
  162.   {$EXTERNALSYM OFN_FORCESHOWHIDDEN}
  163.   OFN_FORCESHOWHIDDEN = $10000000;    // Show All files including System and hidden files
  164.   { #endif // (_WIN32_WINNT >= 0x0500) }
  165.  
  166.   { FlagsEx Values }
  167.   { #if (_WIN32_WINNT >= 0x0500) }
  168.   {$EXTERNALSYM OFN_EX_NOPLACESBAR}
  169.   OFN_EX_NOPLACESBAR = $00000001;
  170.   { #endif // (_WIN32_WINNT >= 0x0500) }
  171.  
  172. { Return values for the registered message sent to the hook function
  173.   when a sharing violation occurs.  OFN_SHAREFALLTHROUGH allows the
  174.   filename to be accepted, OFN_SHARENOWARN rejects the name but puts
  175.   up no warning (returned when the app has already put up a warning
  176.   message), and OFN_SHAREWARN puts up the default warning message
  177.   for sharing violations.
  178.  
  179.   Note:  Undefined return values map to OFN_SHAREWARN, but are
  180.          reserved for future use. }
  181.  
  182.   {$EXTERNALSYM OFN_SHAREFALLTHROUGH}
  183.   OFN_SHAREFALLTHROUGH = 2;
  184.   {$EXTERNALSYM OFN_SHARENOWARN}
  185.   OFN_SHARENOWARN = 1;
  186.   {$EXTERNALSYM OFN_SHAREWARN}
  187.   OFN_SHAREWARN = 0;
  188.  
  189. type
  190.   POFNotifyA = ^TOFNotifyA;
  191.   POFNotifyW = ^TOFNotifyW;
  192.   POFNotify = POFNotifyA;
  193.   {$EXTERNALSYM _OFNOTIFYA}
  194.   _OFNOTIFYA = packed record
  195.     hdr: TNMHdr;
  196.     lpOFN: POpenFilenameA;
  197.     pszFile: PAnsiChar;
  198.   end;
  199.   {$EXTERNALSYM _OFNOTIFYW}
  200.   _OFNOTIFYW = packed record
  201.     hdr: TNMHdr;
  202.     lpOFN: POpenFilenameW;
  203.     pszFile: PWideChar;
  204.   end;
  205.   {$EXTERNALSYM _OFNOTIFY}
  206.   _OFNOTIFY = _OFNOTIFYA;
  207.   TOFNotifyA = _OFNOTIFYA;
  208.   TOFNotifyW = _OFNOTIFYW;
  209.   TOFNotify = TOFNotifyA;
  210.   {$EXTERNALSYM OFNOTIFYA}
  211.   OFNOTIFYA = _OFNOTIFYA;
  212.   {$EXTERNALSYM OFNOTIFYW}
  213.   OFNOTIFYW = _OFNOTIFYW;
  214.   {$EXTERNALSYM OFNOTIFY}
  215.   OFNOTIFY = OFNOTIFYA;
  216.  
  217.  
  218.   POFNotifyExA = ^TOFNotifyExA;
  219.   POFNotifyExW = ^TOFNotifyExW;
  220.   POFNotifyEx = POFNotifyExA;
  221.   {$EXTERNALSYM _OFNOTIFYEXA}
  222.   _OFNOTIFYEXA = packed record
  223.     hdr: TNMHdr;
  224.     lpOFN: POpenFilenameA;
  225.     psf: IShellFolder;
  226.     pidl: Pointer;
  227.   end;
  228.   {$EXTERNALSYM _OFNOTIFYEXW}
  229.   _OFNOTIFYEXW = packed record
  230.     hdr: TNMHdr;
  231.     lpOFN: POpenFilenameW;
  232.     psf: IShellFolder;
  233.     pidl: Pointer;
  234.   end;
  235.   {$EXTERNALSYM _OFNOTIFYEX}
  236.   _OFNOTIFYEX = _OFNOTIFYEXA;
  237.   TOFNotifyExA = _OFNOTIFYEXA;
  238.   TOFNotifyExW = _OFNOTIFYEXW;
  239.   TOFNotifyEx = TOFNotifyExA;
  240.   {$EXTERNALSYM OFNOTIFYEXA}
  241.   OFNOTIFYEXA = _OFNOTIFYEXA;
  242.   {$EXTERNALSYM OFNOTIFYEXW}
  243.   OFNOTIFYEXW = _OFNOTIFYEXW;
  244.   {$EXTERNALSYM OFNOTIFYEX}
  245.   OFNOTIFYEX = OFNOTIFYEXA;
  246.  
  247. const
  248.   {$EXTERNALSYM CDN_FIRST}
  249.   CDN_FIRST = -601;
  250.   {$EXTERNALSYM CDN_LAST}
  251.   CDN_LAST = -699;
  252.  
  253. { Notifications when Open or Save dialog status changes }
  254.  
  255.   {$EXTERNALSYM CDN_INITDONE}
  256.   CDN_INITDONE = CDN_FIRST - 0;
  257.   {$EXTERNALSYM CDN_SELCHANGE}
  258.   CDN_SELCHANGE = CDN_FIRST - 1;
  259.   {$EXTERNALSYM CDN_FOLDERCHANGE}
  260.   CDN_FOLDERCHANGE = CDN_FIRST - 2;
  261.   {$EXTERNALSYM CDN_SHAREVIOLATION}
  262.   CDN_SHAREVIOLATION = CDN_FIRST - 3;
  263.   {$EXTERNALSYM CDN_HELP}
  264.   CDN_HELP = CDN_FIRST - 4;
  265.   {$EXTERNALSYM CDN_FILEOK}
  266.   CDN_FILEOK = CDN_FIRST - 5;
  267.   {$EXTERNALSYM CDN_TYPECHANGE}
  268.   CDN_TYPECHANGE = CDN_FIRST - 6;
  269.   {$EXTERNALSYM CDN_INCLUDEITEM}
  270.   CDN_INCLUDEITEM = CDN_FIRST - 7;
  271.  
  272.   {$EXTERNALSYM CDM_FIRST}
  273.   CDM_FIRST = WM_USER + 100;
  274.   {$EXTERNALSYM CDM_LAST}
  275.   CDM_LAST = WM_USER + 200;
  276.  
  277. { Messages to query information from the Open or Save dialogs }
  278.  
  279. { lParam = pointer to text buffer that gets filled in
  280.   wParam = max number of characters of the text buffer (including NULL)
  281.   return = < 0 if error; number of characters needed (including NULL) }
  282.  
  283.   {$EXTERNALSYM CDM_GETSPEC}
  284.   CDM_GETSPEC = CDM_FIRST + 0;
  285.  
  286. { lParam = pointer to text buffer that gets filled in
  287.   wParam = max number of characters of the text buffer (including NULL)
  288.   return = < 0 if error; number of characters needed (including NULL) }
  289.  
  290.   {$EXTERNALSYM CDM_GETFILEPATH}
  291.   CDM_GETFILEPATH = CDM_FIRST + 1;
  292.  
  293. { lParam = pointer to text buffer that gets filled in
  294.   wParam = max number of characters of the text buffer (including NULL)
  295.   return = < 0 if error; number of characters needed (including NULL) }
  296.  
  297.   {$EXTERNALSYM CDM_GETFOLDERPATH}
  298.   CDM_GETFOLDERPATH = CDM_FIRST + 2;
  299.  
  300. { lParam = pointer to ITEMIDLIST buffer that gets filled in
  301.   wParam = size of the ITEMIDLIST buffer
  302.   return = < 0 if error; length of buffer needed }
  303.  
  304.   {$EXTERNALSYM CDM_GETFOLDERIDLIST}
  305.   CDM_GETFOLDERIDLIST = CDM_FIRST + 3;
  306.  
  307. { lParam = pointer to a string
  308.   wParam = ID of control to change
  309.   return = not used }
  310.  
  311.   {$EXTERNALSYM CDM_SETCONTROLTEXT}
  312.   CDM_SETCONTROLTEXT = CDM_FIRST + 4;
  313.  
  314. { lParam = not used
  315.   wParam = ID of control to change
  316.   return = not used }
  317.  
  318.   {$EXTERNALSYM CDM_HIDECONTROL}
  319.   CDM_HIDECONTROL = CDM_FIRST + 5;
  320.  
  321. { lParam = pointer to default extension (no dot)
  322.   wParam = not used
  323.   return = not used }
  324.  
  325.   {$EXTERNALSYM CDM_SETDEFEXT}
  326.   CDM_SETDEFEXT = CDM_FIRST + 6;
  327.  
  328. type
  329.   PChooseColorA = ^TChooseColorA;
  330.   PChooseColorW = ^TChooseColorW;
  331.   PChooseColor = PChooseColorA;
  332.   {$EXTERNALSYM tagCHOOSECOLORA}
  333.   tagCHOOSECOLORA = packed record
  334.     lStructSize: DWORD;
  335.     hWndOwner: HWND;
  336.     hInstance: HWND;
  337.     rgbResult: COLORREF;
  338.     lpCustColors: ^COLORREF;
  339.     Flags: DWORD;
  340.     lCustData: LPARAM;
  341.     lpfnHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  342.     lpTemplateName: PAnsiChar;
  343.   end;
  344.   {$EXTERNALSYM tagCHOOSECOLORW}
  345.   tagCHOOSECOLORW = packed record
  346.     lStructSize: DWORD;
  347.     hWndOwner: HWND;
  348.     hInstance: HWND;
  349.     rgbResult: COLORREF;
  350.     lpCustColors: ^COLORREF;
  351.     Flags: DWORD;
  352.     lCustData: LPARAM;
  353.     lpfnHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  354.     lpTemplateName: PWideChar;
  355.   end;
  356.   {$EXTERNALSYM tagCHOOSECOLOR}
  357.   tagCHOOSECOLOR = tagCHOOSECOLORA;
  358.   TChooseColorA = tagCHOOSECOLORA;
  359.   TChooseColorW = tagCHOOSECOLORW;
  360.   TChooseColor = TChooseColorA;
  361.  
  362. {$EXTERNALSYM ChooseColor}
  363. function ChooseColor(var CC: TChooseColor): Bool; stdcall;
  364. {$EXTERNALSYM ChooseColorA}
  365. function ChooseColorA(var CC: TChooseColorA): Bool; stdcall;
  366. {$EXTERNALSYM ChooseColorW}
  367. function ChooseColorW(var CC: TChooseColorW): Bool; stdcall;
  368.  
  369. const
  370.   {$EXTERNALSYM CC_RGBINIT}
  371.   CC_RGBINIT = $00000001;
  372.   {$EXTERNALSYM CC_FULLOPEN}
  373.   CC_FULLOPEN = $00000002;
  374.   {$EXTERNALSYM CC_PREVENTFULLOPEN}
  375.   CC_PREVENTFULLOPEN = $00000004;
  376.   {$EXTERNALSYM CC_SHOWHELP}
  377.   CC_SHOWHELP = $00000008;
  378.   {$EXTERNALSYM CC_ENABLEHOOK}
  379.   CC_ENABLEHOOK = $00000010;
  380.   {$EXTERNALSYM CC_ENABLETEMPLATE}
  381.   CC_ENABLETEMPLATE = $00000020;
  382.   {$EXTERNALSYM CC_ENABLETEMPLATEHANDLE}
  383.   CC_ENABLETEMPLATEHANDLE = $00000040;
  384.   {$EXTERNALSYM CC_SOLIDCOLOR}
  385.   CC_SOLIDCOLOR = $00000080;
  386.   {$EXTERNALSYM CC_ANYCOLOR}
  387.   CC_ANYCOLOR = $00000100;
  388.  
  389. type
  390.   PFindReplaceA = ^TFindReplaceA;
  391.   PFindReplaceW = ^TFindReplaceW;
  392.   PFindReplace = PFindReplaceA;
  393.   {$EXTERNALSYM tagFINDREPLACEA}
  394.   tagFINDREPLACEA = packed record
  395.     lStructSize: DWORD;        { size of this struct $20 }
  396.     hWndOwner: HWND;             { handle to owner's window }
  397.     hInstance: HINST;        { instance handle of.EXE that
  398.                                    contains cust. dlg. template }
  399.     Flags: DWORD;                { one or more of the fr_?? }
  400.     lpstrFindWhat: PAnsiChar;       { ptr. to search string    }
  401.     lpstrReplaceWith: PAnsiChar;    { ptr. to replace string   }
  402.     wFindWhatLen: Word;          { size of find buffer      }
  403.     wReplaceWithLen: Word;       { size of replace buffer   }
  404.     lCustData: LPARAM;           { data passed to hook fn.  }
  405.     lpfnHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  406.                                  { ptr. to hook fn. or nil }
  407.     lpTemplateName: PAnsiChar;     { custom template name     }
  408.   end;
  409.   {$EXTERNALSYM tagFINDREPLACEW}
  410.   tagFINDREPLACEW = packed record
  411.     lStructSize: DWORD;        { size of this struct $20 }
  412.     hWndOwner: HWND;             { handle to owner's window }
  413.     hInstance: HINST;        { instance handle of.EXE that
  414.                                    contains cust. dlg. template }
  415.     Flags: DWORD;                { one or more of the fr_?? }
  416.     lpstrFindWhat: PWideChar;       { ptr. to search string    }
  417.     lpstrReplaceWith: PWideChar;    { ptr. to replace string   }
  418.     wFindWhatLen: Word;          { size of find buffer      }
  419.     wReplaceWithLen: Word;       { size of replace buffer   }
  420.     lCustData: LPARAM;           { data passed to hook fn.  }
  421.     lpfnHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  422.                                  { ptr. to hook fn. or nil }
  423.     lpTemplateName: PWideChar;     { custom template name     }
  424.   end;
  425.   {$EXTERNALSYM tagFINDREPLACE}
  426.   tagFINDREPLACE = tagFINDREPLACEA;
  427.   TFindReplaceA = tagFINDREPLACEA;
  428.   TFindReplaceW = tagFINDREPLACEW;
  429.   TFindReplace = TFindReplaceA;
  430.   {$EXTERNALSYM FINDREPLACEA}
  431.   FINDREPLACEA = tagFINDREPLACEA;
  432.   {$EXTERNALSYM FINDREPLACEW}
  433.   FINDREPLACEW = tagFINDREPLACEW;
  434.   {$EXTERNALSYM FINDREPLACE}
  435.   FINDREPLACE = FINDREPLACEA;
  436.  
  437. const
  438.   {$EXTERNALSYM FR_DOWN}
  439.   FR_DOWN = $00000001;
  440.   {$EXTERNALSYM FR_WHOLEWORD}
  441.   FR_WHOLEWORD = $00000002;
  442.   {$EXTERNALSYM FR_MATCHCASE}
  443.   FR_MATCHCASE = $00000004;
  444.   {$EXTERNALSYM FR_FINDNEXT}
  445.   FR_FINDNEXT = $00000008;
  446.   {$EXTERNALSYM FR_REPLACE}
  447.   FR_REPLACE = $00000010;
  448.   {$EXTERNALSYM FR_REPLACEALL}
  449.   FR_REPLACEALL = $00000020;
  450.   {$EXTERNALSYM FR_DIALOGTERM}
  451.   FR_DIALOGTERM = $00000040;
  452.   {$EXTERNALSYM FR_SHOWHELP}
  453.   FR_SHOWHELP = $00000080;
  454.   {$EXTERNALSYM FR_ENABLEHOOK}
  455.   FR_ENABLEHOOK = $00000100;
  456.   {$EXTERNALSYM FR_ENABLETEMPLATE}
  457.   FR_ENABLETEMPLATE = $00000200;
  458.   {$EXTERNALSYM FR_NOUPDOWN}
  459.   FR_NOUPDOWN = $00000400;
  460.   {$EXTERNALSYM FR_NOMATCHCASE}
  461.   FR_NOMATCHCASE = $00000800;
  462.   {$EXTERNALSYM FR_NOWHOLEWORD}
  463.   FR_NOWHOLEWORD = $00001000;
  464.   {$EXTERNALSYM FR_ENABLETEMPLATEHANDLE}
  465.   FR_ENABLETEMPLATEHANDLE = $00002000;
  466.   {$EXTERNALSYM FR_HIDEUPDOWN}
  467.   FR_HIDEUPDOWN = $00004000;
  468.   {$EXTERNALSYM FR_HIDEMATCHCASE}
  469.   FR_HIDEMATCHCASE = $00008000;
  470.   {$EXTERNALSYM FR_HIDEWHOLEWORD}
  471.   FR_HIDEWHOLEWORD = $00010000;
  472.  
  473. {$EXTERNALSYM FindText}
  474. function FindText(var FindReplace: TFindReplace): HWND; stdcall;
  475. {$EXTERNALSYM FindTextA}
  476. function FindTextA(var FindReplace: TFindReplaceA): HWND; stdcall;
  477. {$EXTERNALSYM FindTextW}
  478. function FindTextW(var FindReplace: TFindReplaceW): HWND; stdcall;
  479. {$EXTERNALSYM ReplaceText}
  480. function ReplaceText(var FindReplace: TFindReplace): HWND; stdcall;
  481. {$EXTERNALSYM ReplaceTextA}
  482. function ReplaceTextA(var FindReplace: TFindReplaceA): HWND; stdcall;
  483. {$EXTERNALSYM ReplaceTextW}
  484. function ReplaceTextW(var FindReplace: TFindReplaceW): HWND; stdcall;
  485.  
  486. type
  487.   PChooseFontA = ^TChooseFontA;
  488.   PChooseFontW = ^TChooseFontW;
  489.   PChooseFont = PChooseFontA;
  490.   {$EXTERNALSYM tagCHOOSEFONTA}
  491.   tagCHOOSEFONTA = packed record
  492.     lStructSize: DWORD;
  493.     hWndOwner: HWnd;            { caller's window handle }
  494.     hDC: HDC;                   { printer DC/IC or nil }
  495.     lpLogFont: PLogFontA;     { pointer to a LOGFONT struct }
  496.     iPointSize: Integer;        { 10 * size in points of selected font }
  497.     Flags: DWORD;               { dialog flags }
  498.     rgbColors: COLORREF;        { returned text color }
  499.     lCustData: LPARAM;          { data passed to hook function }
  500.     lpfnHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  501.                                 { pointer to hook function }
  502.     lpTemplateName: PAnsiChar;    { custom template name }
  503.     hInstance: HINST;       { instance handle of EXE that contains
  504.                                   custom dialog template }
  505.     lpszStyle: PAnsiChar;         { return the style field here
  506.                                   must be lf_FaceSize or bigger }
  507.     nFontType: Word;            { same value reported to the EnumFonts
  508.                                   call back with the extra fonttype_
  509.                                   bits added }
  510.     wReserved: Word;
  511.     nSizeMin: Integer;          { minimum point size allowed and }
  512.     nSizeMax: Integer;          { maximum point size allowed if
  513.                                   cf_LimitSize is used }
  514.   end;
  515.   {$EXTERNALSYM tagCHOOSEFONTW}
  516.   tagCHOOSEFONTW = packed record
  517.     lStructSize: DWORD;
  518.     hWndOwner: HWnd;            { caller's window handle }
  519.     hDC: HDC;                   { printer DC/IC or nil }
  520.     lpLogFont: PLogFontW;     { pointer to a LOGFONT struct }
  521.     iPointSize: Integer;        { 10 * size in points of selected font }
  522.     Flags: DWORD;               { dialog flags }
  523.     rgbColors: COLORREF;        { returned text color }
  524.     lCustData: LPARAM;          { data passed to hook function }
  525.     lpfnHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  526.                                 { pointer to hook function }
  527.     lpTemplateName: PWideChar;    { custom template name }
  528.     hInstance: HINST;       { instance handle of EXE that contains
  529.                                   custom dialog template }
  530.     lpszStyle: PWideChar;         { return the style field here
  531.                                   must be lf_FaceSize or bigger }
  532.     nFontType: Word;            { same value reported to the EnumFonts
  533.                                   call back with the extra fonttype_
  534.                                   bits added }
  535.     wReserved: Word;
  536.     nSizeMin: Integer;          { minimum point size allowed and }
  537.     nSizeMax: Integer;          { maximum point size allowed if
  538.                                   cf_LimitSize is used }
  539.   end;
  540.   {$EXTERNALSYM tagCHOOSEFONT}
  541.   tagCHOOSEFONT = tagCHOOSEFONTA;
  542.   TChooseFontA = tagCHOOSEFONTA;
  543.   TChooseFontW = tagCHOOSEFONTW;
  544.   TChooseFont = TChooseFontA;
  545.  
  546. {$EXTERNALSYM ChooseFont}
  547. function ChooseFont(var ChooseFont: TChooseFont): Bool; stdcall;
  548. {$EXTERNALSYM ChooseFontA}
  549. function ChooseFontA(var ChooseFont: TChooseFontA): Bool; stdcall;
  550. {$EXTERNALSYM ChooseFontW}
  551. function ChooseFontW(var ChooseFont: TChooseFontW): Bool; stdcall;
  552.  
  553. const
  554.   {$EXTERNALSYM CF_SCREENFONTS}
  555.   CF_SCREENFONTS = $00000001;
  556.   {$EXTERNALSYM CF_PRINTERFONTS}
  557.   CF_PRINTERFONTS = $00000002;
  558.   {$EXTERNALSYM CF_BOTH}
  559.   CF_BOTH = CF_SCREENFONTS OR CF_PRINTERFONTS;
  560.   {$EXTERNALSYM CF_SHOWHELP}
  561.   CF_SHOWHELP = $00000004;
  562.   {$EXTERNALSYM CF_ENABLEHOOK}
  563.   CF_ENABLEHOOK = $00000008;
  564.   {$EXTERNALSYM CF_ENABLETEMPLATE}
  565.   CF_ENABLETEMPLATE = $00000010;
  566.   {$EXTERNALSYM CF_ENABLETEMPLATEHANDLE}
  567.   CF_ENABLETEMPLATEHANDLE = $00000020;
  568.   {$EXTERNALSYM CF_INITTOLOGFONTSTRUCT}
  569.   CF_INITTOLOGFONTSTRUCT = $00000040;
  570.   {$EXTERNALSYM CF_USESTYLE}
  571.   CF_USESTYLE = $00000080;
  572.   {$EXTERNALSYM CF_EFFECTS}
  573.   CF_EFFECTS = $00000100;
  574.   {$EXTERNALSYM CF_APPLY}
  575.   CF_APPLY = $00000200;
  576.   {$EXTERNALSYM CF_ANSIONLY}
  577.   CF_ANSIONLY = $00000400;
  578.   {$EXTERNALSYM CF_SCRIPTSONLY}
  579.   CF_SCRIPTSONLY = CF_ANSIONLY;
  580.   {$EXTERNALSYM CF_NOVECTORFONTS}
  581.   CF_NOVECTORFONTS = $00000800;
  582.   {$EXTERNALSYM CF_NOOEMFONTS}
  583.   CF_NOOEMFONTS = CF_NOVECTORFONTS;
  584.   {$EXTERNALSYM CF_NOSIMULATIONS}
  585.   CF_NOSIMULATIONS = $00001000;
  586.   {$EXTERNALSYM CF_LIMITSIZE}
  587.   CF_LIMITSIZE = $00002000;
  588.   {$EXTERNALSYM CF_FIXEDPITCHONLY}
  589.   CF_FIXEDPITCHONLY = $00004000;
  590.   {$EXTERNALSYM CF_WYSIWYG}
  591.   CF_WYSIWYG = $00008000; { must also have CF_SCREENFONTS & CF_PRINTERFONTS }
  592.   {$EXTERNALSYM CF_FORCEFONTEXIST}
  593.   CF_FORCEFONTEXIST = $00010000;
  594.   {$EXTERNALSYM CF_SCALABLEONLY}
  595.   CF_SCALABLEONLY = $00020000;
  596.   {$EXTERNALSYM CF_TTONLY}
  597.   CF_TTONLY = $00040000;
  598.   {$EXTERNALSYM CF_NOFACESEL}
  599.   CF_NOFACESEL = $00080000;
  600.   {$EXTERNALSYM CF_NOSTYLESEL}
  601.   CF_NOSTYLESEL = $00100000;
  602.   {$EXTERNALSYM CF_NOSIZESEL}
  603.   CF_NOSIZESEL = $00200000;
  604.   {$EXTERNALSYM CF_SELECTSCRIPT}
  605.   CF_SELECTSCRIPT = $00400000;
  606.   {$EXTERNALSYM CF_NOSCRIPTSEL}
  607.   CF_NOSCRIPTSEL = $00800000;
  608.   {$EXTERNALSYM CF_NOVERTFONTS}
  609.   CF_NOVERTFONTS = $01000000;
  610.  
  611. { these are extra nFontType bits that are added to what is returned to the
  612.   EnumFonts callback routine }
  613.  
  614.   {$EXTERNALSYM SIMULATED_FONTTYPE}
  615.   SIMULATED_FONTTYPE = $8000;
  616.   {$EXTERNALSYM PRINTER_FONTTYPE}
  617.   PRINTER_FONTTYPE = $4000;
  618.   {$EXTERNALSYM SCREEN_FONTTYPE}
  619.   SCREEN_FONTTYPE = $2000;
  620.   {$EXTERNALSYM BOLD_FONTTYPE}
  621.   BOLD_FONTTYPE = $0100;
  622.   {$EXTERNALSYM ITALIC_FONTTYPE}
  623.   ITALIC_FONTTYPE = $0200;
  624.   {$EXTERNALSYM REGULAR_FONTTYPE}
  625.   REGULAR_FONTTYPE = $0400;
  626.  
  627.   {$EXTERNALSYM OPENTYPE_FONTTYPE}
  628.   OPENTYPE_FONTTYPE = $10000;
  629.   {$EXTERNALSYM TYPE1_FONTTYPE}
  630.   TYPE1_FONTTYPE = $20000;
  631.   {$EXTERNALSYM DSIG_FONTTYPE}
  632.   DSIG_FONTTYPE = $40000;
  633.  
  634.   {$EXTERNALSYM WM_CHOOSEFONT_GETLOGFONT}
  635.   WM_CHOOSEFONT_GETLOGFONT = WM_USER + 1;
  636.   {$EXTERNALSYM WM_CHOOSEFONT_SETLOGFONT}
  637.   WM_CHOOSEFONT_SETLOGFONT = WM_USER + 101; { removed in 4.0 SDK }
  638.   {$EXTERNALSYM WM_CHOOSEFONT_SETFLAGS}
  639.   WM_CHOOSEFONT_SETFLAGS   = WM_USER + 102; { removed in 4.0 SDK }
  640.  
  641. { strings used to obtain unique window message for communication
  642.   between dialog and caller }
  643.  
  644.   {$EXTERNALSYM LBSELCHSTRING}
  645.   LBSELCHSTRING = 'commdlg_LBSelChangedNotify';
  646.   {$EXTERNALSYM SHAREVISTRING}
  647.   SHAREVISTRING = 'commdlg_ShareViolation';
  648.   {$EXTERNALSYM FILEOKSTRING}
  649.   FILEOKSTRING  = 'commdlg_FileNameOK';
  650.   {$EXTERNALSYM COLOROKSTRING}
  651.   COLOROKSTRING = 'commdlg_ColorOK';
  652.   {$EXTERNALSYM SETRGBSTRING}
  653.   SETRGBSTRING  = 'commdlg_SetRGBColor';
  654.   {$EXTERNALSYM FINDMSGSTRING}
  655.   FINDMSGSTRING = 'commdlg_FindReplace';
  656.   {$EXTERNALSYM HELPMSGSTRING}
  657.   HELPMSGSTRING = 'commdlg_help';
  658.  
  659. { HIWORD values for lParam of commdlg_LBSelChangeNotify message }
  660.  
  661. const
  662.   {$EXTERNALSYM CD_LBSELNOITEMS}
  663.   CD_LBSELNOITEMS = -1;
  664.   {$EXTERNALSYM CD_LBSELCHANGE}
  665.   CD_LBSELCHANGE  = 0;
  666.   {$EXTERNALSYM CD_LBSELSUB}
  667.   CD_LBSELSUB     = 1;
  668.   {$EXTERNALSYM CD_LBSELADD}
  669.   CD_LBSELADD     = 2;
  670.  
  671. type
  672.   PPrintDlgA = ^TPrintDlgA;
  673.   PPrintDlgW = ^TPrintDlgW;
  674.   PPrintDlg = PPrintDlgA;
  675.   {$EXTERNALSYM tagPDA}
  676.   tagPDA = packed record
  677.     lStructSize: DWORD;
  678.     hWndOwner: HWND;
  679.     hDevMode: HGLOBAL;
  680.     hDevNames: HGLOBAL;
  681.     hDC: HDC;
  682.     Flags: DWORD;
  683.     nFromPage: Word;
  684.     nToPage: Word;
  685.     nMinPage: Word;
  686.     nMaxPage: Word;
  687.     nCopies: Word;
  688.     hInstance: HINST;
  689.     lCustData: LPARAM;
  690.     lpfnPrintHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  691.     lpfnSetupHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  692.     lpPrintTemplateName: PAnsiChar;
  693.     lpSetupTemplateName: PAnsiChar;
  694.     hPrintTemplate: HGLOBAL;
  695.     hSetupTemplate: HGLOBAL;
  696.   end;
  697.   {$EXTERNALSYM tagPDW}
  698.   tagPDW = packed record
  699.     lStructSize: DWORD;
  700.     hWndOwner: HWND;
  701.     hDevMode: HGLOBAL;
  702.     hDevNames: HGLOBAL;
  703.     hDC: HDC;
  704.     Flags: DWORD;
  705.     nFromPage: Word;
  706.     nToPage: Word;
  707.     nMinPage: Word;
  708.     nMaxPage: Word;
  709.     nCopies: Word;
  710.     hInstance: HINST;
  711.     lCustData: LPARAM;
  712.     lpfnPrintHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  713.     lpfnSetupHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  714.     lpPrintTemplateName: PWideChar;
  715.     lpSetupTemplateName: PWideChar;
  716.     hPrintTemplate: HGLOBAL;
  717.     hSetupTemplate: HGLOBAL;
  718.   end;
  719.   {$EXTERNALSYM tagPD}
  720.   tagPD = tagPDA;
  721.   TPrintDlgA = tagPDA;
  722.   TPrintDlgW = tagPDW;
  723.   TPrintDlg = TPrintDlgA;
  724.  
  725. {$EXTERNALSYM PrintDlg}
  726. function PrintDlg(var PrintDlg: TPrintDlg): Bool; stdcall;
  727. {$EXTERNALSYM PrintDlgA}
  728. function PrintDlgA(var PrintDlg: TPrintDlgA): Bool; stdcall;
  729. {$EXTERNALSYM PrintDlgW}
  730. function PrintDlgW(var PrintDlg: TPrintDlgW): Bool; stdcall;
  731.  
  732. const
  733.   {$EXTERNALSYM PD_ALLPAGES}
  734.   PD_ALLPAGES = $00000000;
  735.   {$EXTERNALSYM PD_SELECTION}
  736.   PD_SELECTION = $00000001;
  737.   {$EXTERNALSYM PD_PAGENUMS}
  738.   PD_PAGENUMS = $00000002;
  739.   {$EXTERNALSYM PD_NOSELECTION}
  740.   PD_NOSELECTION = $00000004;
  741.   {$EXTERNALSYM PD_NOPAGENUMS}
  742.   PD_NOPAGENUMS = $00000008;
  743.   {$EXTERNALSYM PD_COLLATE}
  744.   PD_COLLATE = $00000010;
  745.   {$EXTERNALSYM PD_PRINTTOFILE}
  746.   PD_PRINTTOFILE = $00000020;
  747.   {$EXTERNALSYM PD_PRINTSETUP}
  748.   PD_PRINTSETUP = $00000040;
  749.   {$EXTERNALSYM PD_NOWARNING}
  750.   PD_NOWARNING = $00000080;
  751.   {$EXTERNALSYM PD_RETURNDC}
  752.   PD_RETURNDC = $00000100;
  753.   {$EXTERNALSYM PD_RETURNIC}
  754.   PD_RETURNIC = $00000200;
  755.   {$EXTERNALSYM PD_RETURNDEFAULT}
  756.   PD_RETURNDEFAULT = $00000400;
  757.   {$EXTERNALSYM PD_SHOWHELP}
  758.   PD_SHOWHELP = $00000800;
  759.   {$EXTERNALSYM PD_ENABLEPRINTHOOK}
  760.   PD_ENABLEPRINTHOOK = $00001000;
  761.   {$EXTERNALSYM PD_ENABLESETUPHOOK}
  762.   PD_ENABLESETUPHOOK = $00002000;
  763.   {$EXTERNALSYM PD_ENABLEPRINTTEMPLATE}
  764.   PD_ENABLEPRINTTEMPLATE = $00004000;
  765.   {$EXTERNALSYM PD_ENABLESETUPTEMPLATE}
  766.   PD_ENABLESETUPTEMPLATE = $00008000;
  767.   {$EXTERNALSYM PD_ENABLEPRINTTEMPLATEHANDLE}
  768.   PD_ENABLEPRINTTEMPLATEHANDLE = $00010000;
  769.   {$EXTERNALSYM PD_ENABLESETUPTEMPLATEHANDLE}
  770.   PD_ENABLESETUPTEMPLATEHANDLE = $00020000;
  771.   {$EXTERNALSYM PD_USEDEVMODECOPIES}
  772.   PD_USEDEVMODECOPIES = $00040000;
  773.   {$EXTERNALSYM PD_USEDEVMODECOPIESANDCOLLATE}
  774.   PD_USEDEVMODECOPIESANDCOLLATE = $00040000;
  775.   {$EXTERNALSYM PD_DISABLEPRINTTOFILE}
  776.   PD_DISABLEPRINTTOFILE = $00080000;
  777.   {$EXTERNALSYM PD_HIDEPRINTTOFILE}
  778.   PD_HIDEPRINTTOFILE = $00100000;
  779.   {$EXTERNALSYM PD_NONETWORKBUTTON}
  780.   PD_NONETWORKBUTTON = $00200000;
  781.  
  782. type
  783.   PDevNames = ^TDevNames;
  784.   {$EXTERNALSYM tagDEVNAMES}
  785.   tagDEVNAMES = record
  786.     wDriverOffset: Word;
  787.     wDeviceOffset: Word;
  788.     wOutputOffset: Word;
  789.     wDefault: Word;
  790.   end;
  791.   TDevNames = tagDEVNAMES;
  792.   {$EXTERNALSYM DEVNAMES}
  793.   DEVNAMES = tagDEVNAMES;
  794.  
  795. const
  796.   {$EXTERNALSYM DN_DEFAULTPRN}
  797.   DN_DEFAULTPRN = $0001;
  798.  
  799. {$EXTERNALSYM CommDlgExtendedError}
  800. function CommDlgExtendedError: DWORD; stdcall;
  801.  
  802. const
  803.   {$EXTERNALSYM WM_PSD_PAGESETUPDLG}
  804.   WM_PSD_PAGESETUPDLG     = WM_USER;
  805.   {$EXTERNALSYM WM_PSD_FULLPAGERECT}
  806.   WM_PSD_FULLPAGERECT     = WM_USER + 1;
  807.   {$EXTERNALSYM WM_PSD_MINMARGINRECT}
  808.   WM_PSD_MINMARGINRECT    = WM_USER + 2;
  809.   {$EXTERNALSYM WM_PSD_MARGINRECT}
  810.   WM_PSD_MARGINRECT       = WM_USER + 3;
  811.   {$EXTERNALSYM WM_PSD_GREEKTEXTRECT}
  812.   WM_PSD_GREEKTEXTRECT    = WM_USER + 4;
  813.   {$EXTERNALSYM WM_PSD_ENVSTAMPRECT}
  814.   WM_PSD_ENVSTAMPRECT     = WM_USER + 5;
  815.   {$EXTERNALSYM WM_PSD_YAFULLPAGERECT}
  816.   WM_PSD_YAFULLPAGERECT   = WM_USER + 6;
  817.  
  818. type
  819.   PPageSetupDlgA = ^TPageSetupDlgA;
  820.   PPageSetupDlgW = ^TPageSetupDlgW;
  821.   PPageSetupDlg = PPageSetupDlgA;
  822.   {$EXTERNALSYM tagPSDA}
  823.   tagPSDA = packed record
  824.     lStructSize: DWORD;
  825.     hwndOwner: HWND;
  826.     hDevMode: HGLOBAL;
  827.     hDevNames: HGLOBAL;
  828.     Flags: DWORD;
  829.     ptPaperSize: TPoint;
  830.     rtMinMargin: TRect;
  831.     rtMargin: TRect;
  832.     hInstance: HINST;
  833.     lCustData: LPARAM;
  834.     lpfnPageSetupHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  835.     lpfnPagePaintHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  836.     lpPageSetupTemplateName: PAnsiChar;
  837.     hPageSetupTemplate: HGLOBAL;
  838.   end;
  839.   {$EXTERNALSYM tagPSDW}
  840.   tagPSDW = packed record
  841.     lStructSize: DWORD;
  842.     hwndOwner: HWND;
  843.     hDevMode: HGLOBAL;
  844.     hDevNames: HGLOBAL;
  845.     Flags: DWORD;
  846.     ptPaperSize: TPoint;
  847.     rtMinMargin: TRect;
  848.     rtMargin: TRect;
  849.     hInstance: HINST;
  850.     lCustData: LPARAM;
  851.     lpfnPageSetupHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  852.     lpfnPagePaintHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
  853.     lpPageSetupTemplateName: PWideChar;
  854.     hPageSetupTemplate: HGLOBAL;
  855.   end;
  856.   {$EXTERNALSYM tagPSD}
  857.   tagPSD = tagPSDA;
  858.   TPageSetupDlgA = tagPSDA;
  859.   TPageSetupDlgW = tagPSDW;
  860.   TPageSetupDlg = TPageSetupDlgA;
  861.  
  862. {$EXTERNALSYM PageSetupDlg}
  863. function PageSetupDlg(var PgSetupDialog: TPageSetupDlg): BOOL; stdcall;
  864. {$EXTERNALSYM PageSetupDlgA}
  865. function PageSetupDlgA(var PgSetupDialog: TPageSetupDlgA): BOOL; stdcall;
  866. {$EXTERNALSYM PageSetupDlgW}
  867. function PageSetupDlgW(var PgSetupDialog: TPageSetupDlgW): BOOL; stdcall;
  868.  
  869. const
  870.   {$EXTERNALSYM PSD_DEFAULTMINMARGINS}
  871.   PSD_DEFAULTMINMARGINS             = $00000000; { default (printer's) }
  872.   {$EXTERNALSYM PSD_INWININIINTLMEASURE}
  873.   PSD_INWININIINTLMEASURE           = $00000000; { 1st of 4 possible }
  874.  
  875.   {$EXTERNALSYM PSD_MINMARGINS}
  876.   PSD_MINMARGINS                    = $00000001; { use caller's }
  877.   {$EXTERNALSYM PSD_MARGINS}
  878.   PSD_MARGINS                       = $00000002; { use caller's }
  879.   {$EXTERNALSYM PSD_INTHOUSANDTHSOFINCHES}
  880.   PSD_INTHOUSANDTHSOFINCHES         = $00000004; { 2nd of 4 possible }
  881.   {$EXTERNALSYM PSD_INHUNDREDTHSOFMILLIMETERS}
  882.   PSD_INHUNDREDTHSOFMILLIMETERS     = $00000008; { 3rd of 4 possible }
  883.   {$EXTERNALSYM PSD_DISABLEMARGINS}
  884.   PSD_DISABLEMARGINS                = $00000010;
  885.   {$EXTERNALSYM PSD_DISABLEPRINTER}
  886.   PSD_DISABLEPRINTER                = $00000020;
  887.   {$EXTERNALSYM PSD_NOWARNING}
  888.   PSD_NOWARNING                     = $00000080; { must be same as PD_* }
  889.   {$EXTERNALSYM PSD_DISABLEORIENTATION}
  890.   PSD_DISABLEORIENTATION            = $00000100;
  891.   {$EXTERNALSYM PSD_RETURNDEFAULT}
  892.   PSD_RETURNDEFAULT                 = $00000400; { must be same as PD_* }
  893.   {$EXTERNALSYM PSD_DISABLEPAPER}
  894.   PSD_DISABLEPAPER                  = $00000200;
  895.   {$EXTERNALSYM PSD_SHOWHELP}
  896.   PSD_SHOWHELP                      = $00000800; { must be same as PD_* }
  897.   {$EXTERNALSYM PSD_ENABLEPAGESETUPHOOK}
  898.   PSD_ENABLEPAGESETUPHOOK           = $00002000; { must be same as PD_* }
  899.   {$EXTERNALSYM PSD_ENABLEPAGESETUPTEMPLATE}
  900.   PSD_ENABLEPAGESETUPTEMPLATE       = $00008000; { must be same as PD_* }
  901.   {$EXTERNALSYM PSD_ENABLEPAGESETUPTEMPLATEHANDLE}
  902.   PSD_ENABLEPAGESETUPTEMPLATEHANDLE = $00020000; { must be same as PD_* }
  903.   {$EXTERNALSYM PSD_ENABLEPAGEPAINTHOOK}
  904.   PSD_ENABLEPAGEPAINTHOOK           = $00040000;
  905.   {$EXTERNALSYM PSD_DISABLEPAGEPAINTING}
  906.   PSD_DISABLEPAGEPAINTING           = $00080000;
  907.   {$EXTERNALSYM PSD_NONETWORKBUTTON}
  908.   PSD_NONETWORKBUTTON               = $00200000; { must be same as PD_* }
  909.  
  910.  
  911. { Common dialog error return codes }
  912.  
  913. const
  914.   {$EXTERNALSYM CDERR_DIALOGFAILURE}
  915.   CDERR_DIALOGFAILURE    = $FFFF;
  916.  
  917.   {$EXTERNALSYM CDERR_GENERALCODES}
  918.   CDERR_GENERALCODES     = $0000;
  919.   {$EXTERNALSYM CDERR_STRUCTSIZE}
  920.   CDERR_STRUCTSIZE       = $0001;
  921.   {$EXTERNALSYM CDERR_INITIALIZATION}
  922.   CDERR_INITIALIZATION   = $0002;
  923.   {$EXTERNALSYM CDERR_NOTEMPLATE}
  924.   CDERR_NOTEMPLATE       = $0003;
  925.   {$EXTERNALSYM CDERR_NOHINSTANCE}
  926.   CDERR_NOHINSTANCE      = $0004;
  927.   {$EXTERNALSYM CDERR_LOADSTRFAILURE}
  928.   CDERR_LOADSTRFAILURE   = $0005;
  929.   {$EXTERNALSYM CDERR_FINDRESFAILURE}
  930.   CDERR_FINDRESFAILURE   = $0006;
  931.   {$EXTERNALSYM CDERR_LOADRESFAILURE}
  932.   CDERR_LOADRESFAILURE   = $0007;
  933.   {$EXTERNALSYM CDERR_LOCKRESFAILURE}
  934.   CDERR_LOCKRESFAILURE   = $0008;
  935.   {$EXTERNALSYM CDERR_MEMALLOCFAILURE}
  936.   CDERR_MEMALLOCFAILURE  = $0009;
  937.   {$EXTERNALSYM CDERR_MEMLOCKFAILURE}
  938.   CDERR_MEMLOCKFAILURE   = $000A;
  939.   {$EXTERNALSYM CDERR_NOHOOK}
  940.   CDERR_NOHOOK           = $000B;
  941.   {$EXTERNALSYM CDERR_REGISTERMSGFAIL}
  942.   CDERR_REGISTERMSGFAIL  = $000C;
  943.  
  944.   {$EXTERNALSYM PDERR_PRINTERCODES}
  945.   PDERR_PRINTERCODES     = $1000;
  946.   {$EXTERNALSYM PDERR_SETUPFAILURE}
  947.   PDERR_SETUPFAILURE     = $1001;
  948.   {$EXTERNALSYM PDERR_PARSEFAILURE}
  949.   PDERR_PARSEFAILURE     = $1002;
  950.   {$EXTERNALSYM PDERR_RETDEFFAILURE}
  951.   PDERR_RETDEFFAILURE    = $1003;
  952.   {$EXTERNALSYM PDERR_LOADDRVFAILURE}
  953.   PDERR_LOADDRVFAILURE   = $1004;
  954.   {$EXTERNALSYM PDERR_GETDEVMODEFAIL}
  955.   PDERR_GETDEVMODEFAIL   = $1005;
  956.   {$EXTERNALSYM PDERR_INITFAILURE}
  957.   PDERR_INITFAILURE      = $1006;
  958.   {$EXTERNALSYM PDERR_NODEVICES}
  959.   PDERR_NODEVICES        = $1007;
  960.   {$EXTERNALSYM PDERR_NODEFAULTPRN}
  961.   PDERR_NODEFAULTPRN     = $1008;
  962.   {$EXTERNALSYM PDERR_DNDMMISMATCH}
  963.   PDERR_DNDMMISMATCH     = $1009;
  964.   {$EXTERNALSYM PDERR_CREATEICFAILURE}
  965.   PDERR_CREATEICFAILURE  = $100A;
  966.   {$EXTERNALSYM PDERR_PRINTERNOTFOUND}
  967.   PDERR_PRINTERNOTFOUND  = $100B;
  968.   {$EXTERNALSYM PDERR_DEFAULTDIFFERENT}
  969.   PDERR_DEFAULTDIFFERENT = $100C;
  970.  
  971.   {$EXTERNALSYM CFERR_CHOOSEFONTCODES}
  972.   CFERR_CHOOSEFONTCODES  = $2000;
  973.   {$EXTERNALSYM CFERR_NOFONTS}
  974.   CFERR_NOFONTS          = $2001;
  975.   {$EXTERNALSYM CFERR_MAXLESSTHANMIN}
  976.   CFERR_MAXLESSTHANMIN   = $2002;
  977.  
  978.   {$EXTERNALSYM FNERR_FILENAMECODES}
  979.   FNERR_FILENAMECODES    = $3000;
  980.   {$EXTERNALSYM FNERR_SUBCLASSFAILURE}
  981.   FNERR_SUBCLASSFAILURE  = $3001;
  982.   {$EXTERNALSYM FNERR_INVALIDFILENAME}
  983.   FNERR_INVALIDFILENAME  = $3002;
  984.   {$EXTERNALSYM FNERR_BUFFERTOOSMALL}
  985.   FNERR_BUFFERTOOSMALL   = $3003;
  986.  
  987.   {$EXTERNALSYM FRERR_FINDREPLACECODES}
  988.   FRERR_FINDREPLACECODES = $4000;
  989.   {$EXTERNALSYM FRERR_BUFFERLENGTHZERO}
  990.   FRERR_BUFFERLENGTHZERO = $4001;
  991.  
  992.   {$EXTERNALSYM CCERR_CHOOSECOLORCODES}
  993.   CCERR_CHOOSECOLORCODES = $5000;
  994.  
  995. implementation
  996.  
  997. function GetOpenFileName;      external 'comdlg32.dll'  name 'GetOpenFileNameA';
  998. function GetOpenFileNameA;      external 'comdlg32.dll'  name 'GetOpenFileNameA';
  999. function GetOpenFileNameW;      external 'comdlg32.dll'  name 'GetOpenFileNameW';
  1000. function GetSaveFileName;   external 'comdlg32.dll'  name 'GetSaveFileNameA';
  1001. function GetSaveFileNameA;   external 'comdlg32.dll'  name 'GetSaveFileNameA';
  1002. function GetSaveFileNameW;   external 'comdlg32.dll'  name 'GetSaveFileNameW';
  1003. function GetFileTitle;      external 'comdlg32.dll'  name 'GetFileTitleA';
  1004. function GetFileTitleA;      external 'comdlg32.dll'  name 'GetFileTitleA';
  1005. function GetFileTitleW;      external 'comdlg32.dll'  name 'GetFileTitleW';
  1006. function ChooseColor;       external 'comdlg32.dll'  name 'ChooseColorA';
  1007. function ChooseColorA;       external 'comdlg32.dll'  name 'ChooseColorA';
  1008. function ChooseColorW;       external 'comdlg32.dll'  name 'ChooseColorW';
  1009. function FindText;          external 'comdlg32.dll'  name 'FindTextA';
  1010. function FindTextA;          external 'comdlg32.dll'  name 'FindTextA';
  1011. function FindTextW;          external 'comdlg32.dll'  name 'FindTextW';
  1012. function ReplaceText;       external 'comdlg32.dll'  name 'ReplaceTextA';
  1013. function ReplaceTextA;       external 'comdlg32.dll'  name 'ReplaceTextA';
  1014. function ReplaceTextW;       external 'comdlg32.dll'  name 'ReplaceTextW';
  1015. function ChooseFont;        external 'comdlg32.dll'  name 'ChooseFontA';
  1016. function ChooseFontA;        external 'comdlg32.dll'  name 'ChooseFontA';
  1017. function ChooseFontW;        external 'comdlg32.dll'  name 'ChooseFontW';
  1018. function PrintDlg;          external 'comdlg32.dll'  name 'PrintDlgA';
  1019. function PrintDlgA;          external 'comdlg32.dll'  name 'PrintDlgA';
  1020. function PrintDlgW;          external 'comdlg32.dll'  name 'PrintDlgW';
  1021. function CommDlgExtendedError; external 'comdlg32.dll'  name 'CommDlgExtendedError';
  1022. function PageSetupDlg;      external 'comdlg32.dll'  name 'PageSetupDlgA';
  1023. function PageSetupDlgA;      external 'comdlg32.dll'  name 'PageSetupDlgA';
  1024. function PageSetupDlgW;      external 'comdlg32.dll'  name 'PageSetupDlgW';
  1025.  
  1026. end.
  1027.  
  1028.